The present invention relates to the field of computer systems. More particularly, the invention relates to a method and system for prefabricating information in a computer system.
Many computer applications obtain and display information to users. For example, a web browser is a specially configured application for retrieving and displaying web pages. When the user of a web browser indicates a desire to view a particular page of information, the browser or its supporting hardware/software components on the user station performs actions to create and send an information request to the location of the information. The information request is sent across the network to the location of the information, is serviced at the remote location to create/send the requested information, which is then returned to the local user station for viewing. In a multi-tier architecture, the information request may be directed to a middle tier web server, which in turn handles the requesting, retrieval, and packaging of information from one or more back-end data servers. Such information retrieval and display actions are relevant to many networked computer applications, such as distributed database applications.
To illustrate, consider a typical user's home page that is established on a web portal site. A portion of the home page may be configured to display the latest prices for stocks owned by the user and a summary of the value of the user's stock portfolio. Other portions of the home page can be configured to display other types of information, such as news, weather, etc. When the user's browser requests the home page, a page request is sent to a web server having the responsibility for retrieving relevant items of information on the home page from one or more back-end data servers (e.g., stock price information from a database server), processing the data if necessary (e.g., to calculate stock portfolio values for the user), and packaging the page information into a designated page format for display.
In conventional computer systems, there is always an inherent delay associated with this process of “fabricating” a page of information. Each information request could involve multiple network roundtrips that consume a given quantity of time. Substantial delays may also occur because of large information items that must be retrieved or downloaded across the network. The information request may involve database processing at a back-end data server, causing more delays. In addition, once all the information is collected, it may have to be rendered or packaged into a specific format, causing yet more delays. These delays could significantly affect the performance or usability of a computer application. In modern business environments, such delays could contribute to unacceptable productivity losses for computer users.
Therefore, it is an object of the invention to provide a method and system for increasing response speeds and reducing response times to user requests for information.
The present invention provides a method and system for prefabricating information, in which the necessary steps to retrieve and package information requested by a user are preemptively performed by the computer system. When the user later makes an explicit request for information, the desired information can be immediately displayed to the user without the delays associated with contemporaneous retrieval and packaging of the information.
In one embodiment, the invention comprises a prefabricator that generates prefabrication requests. The prefabrication requests are processed to create and store prefabricated information. An interceptor receives information requests from users, and provides the prefabricated information in response to the information requests. The prefabrication components of the invention can be non-intrusively used with any existing computer application and without requiring installation of any additional hardware components.
The prefabrication system of the invention can be configured to automatically tune its processing to the changing conditions that exist in the computer system. This permits the prefabrication process to take full advantage of any excess resources available in the system during periods of low resource usage, by automatically increasing the prefabrication workload. During periods of high resource usage, the prefabrication workload is automatically lowered to minimize any harmful effects upon other run-time work being performed by the system.
The present invention can be scalably deployed to perform coordinated prefabrication services on multiple, distributed computing nodes. According to an embodiment of the invention in a multi-node environment, any number of prefabricator instances can be configured to perform prefabrication functions on separate network nodes. Each prefabricator instance handles its allocated portion of the prefabricated information, and stores the prefabricated information in a network accessible storage device. When a user makes an information request, any of the nodes within the prefabrication framework can determine if the requested information has been prefabricated, and retrieve the prefabricated information for the user. By intelligently distributing the workload across multiple nodes, the system resources in all prefabricator nodes can be optimally harnessed and dynamically tuned. Regardless of the quantity of prefabrication workload that is assigned to a given node, all nodes equally participate in the benefits of prefabricated information, since all prefabricated information, even information prefabricated by other nodes, are universally accessible from networked storage devices.
An embodiment of the invention provides a method to manage session security for prefabrication services. The interceptor in this embodiment is configured to verify the validity of session ID values for users. If the user makes an information request that can be satisfied with prefabricated information, then the interceptor provides the prefabricated information with the valid session ID for the user attached to the information.
Further details of aspects, objects, and advantages of the invention are described below in the detailed description, drawings, and claims.